Node FS
Enhanced file system operations in Node.js with asynchronous queue to prevent parallel writes.
Installation
yarn add @alwatr/node-fs
Features
- Checks if a directory exists. If it doesn't, it creates the directory and all necessary subdirectories.
- Before writing a file successfully, first writes it to a temporary path (
path.tmp
). - If a file already exists, renames and keeps the existing file at a backup path (
path.bak
). - If a write operation fails, the original file remains unchanged.
- Includes
readJson
and writeJson
functions that automatically parse and stringify JSON data. - Supports both synchronous and asynchronous read/write operations.
- An asynchronous queue is used to prevent simultaneous write operations.
- Fully written in TypeScript, includes type definitions.
- Separate builds are provided for ESModule and CommonJS.
- Zero dependencies, except for the nanolib library.
- Includes a beautiful log feature, which uses the logger package from nanolib.
Usage
import {writeJson} from '@alwatr/node-fs';
const path = 'file.json';
await writeJson(path, {a: 1});
writeJson(path, {a: 2});
writeJson(path, {a: 3});
const data = await readJson(path);
console.log(data.a);
The following companies, organizations, and individuals support Nanolib ongoing maintenance and development. Become a Sponsor to get your logo on our README and website.
Contributing
Contributions are welcome! Please read our contribution guidelines before submitting a pull request.
License
This project is licensed under the AGPL-3.0 License.